package com.home.common.framework.core.service;

import com.home.base.core.framework.msg.PageResponse;
import com.home.common.handler.exception.BizException;

import java.util.List;
import java.util.Map;

/**
 * Description: 通用业务 service
 * Created by 王大宸 on 2020-09-28 20:14
 * Created with IntelliJ IDEA.
 */
public interface BaseService<T, PK> {

    /***
     * 功能说明：获取列表
     *
     * @author 王大宸
     * @date 2020/9/28 20:15
     * @param
     * @return java.util.List < T>
     */
    List<T> list(T entity) throws BizException;

    /***
     * 功能说明：分页
     * @author 王大宸
     * @date 2020/9/28 20:15
     * @param params  page/limit/name
     * @return com.home.common.framework.msg.PageResponse
     */
    PageResponse<T> page(Map<String, Object> params) throws BizException;

    /***
     * 功能说明：新增
     *
     * @author 王大宸
     * @date 2020/9/28 20:15
     * @param entity 需要新增的数据
     * @return T
     */
    T saveInfo(T entity) throws BizException;

    /***
     * 功能说明：根据id查询数据
     *
     * @author 王大宸
     * @date 2020/9/28 20:16
     * @param id 根据id查询数据
     * @return T
     */
    T getById(PK id) throws BizException;

    /***
     * 功能说明：更新数据
     *
     * @author 王大宸
     * @date 2020/9/28 20:16
     * @param entity 需要更新的数据
     * @return T
     */
    T updateInfo(T entity) throws BizException;

    /***
     * 功能说明：删除
     *
     * @author 王大宸
     * @date 2020/9/28 20:16
     * @param id 需要删除数据的id
     * @return int
     */
    int remove(PK id) throws BizException;
}
